/**
 * @file softplusv2_custom_tiling.h
 *
 * Copyright (C) 2023-2025. Huawei Technologies Co., Ltd. All rights reserved.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */

#ifndef SOFTPLUSV2_CUSTOM_TILING_Hf
#define SOFTPLUSV2_CUSTOM_TILING_H

#include "register/tilingdata_base.h"

namespace optiling {
BEGIN_TILING_DATA_DEF(SoftmaxV2TilingData)
    TILING_DATA_FIELD_DEF(uint32_t, perElementByBlk);  
    TILING_DATA_FIELD_DEF(uint32_t, oriRSize); 
    TILING_DATA_FIELD_DEF(uint32_t, oriASize); 
    TILING_DATA_FIELD_DEF(uint32_t, multiCoreNum); 

    TILING_DATA_FIELD_DEF(uint32_t, multiCoreASize); 
    TILING_DATA_FIELD_DEF(uint32_t, multiCoreA);  
    TILING_DATA_FIELD_DEF(uint32_t, multiCoreTailA);
    TILING_DATA_FIELD_DEF(uint32_t, multiCoreAloopLimit);

    TILING_DATA_FIELD_DEF(uint32_t, tailMultiCoreASize);  
    TILING_DATA_FIELD_DEF(uint32_t, tailMultiCoreA);  
    TILING_DATA_FIELD_DEF(uint32_t, tailMultiCoreTailA);
    TILING_DATA_FIELD_DEF(uint32_t, tailMultiCoreTailAloopLimit);

    TILING_DATA_FIELD_DEF(uint32_t, rloopLimit);   
    TILING_DATA_FIELD_DEF(uint32_t, rSize);   
    TILING_DATA_FIELD_DEF(uint32_t, tailRSize);  
    TILING_DATA_FIELD_DEF(uint32_t, exponent);  
    TILING_DATA_FIELD_DEF(uint32_t, scaleFactor);   
    TILING_DATA_FIELD_DEF(uint32_t, tailExponent);  
    TILING_DATA_FIELD_DEF(uint32_t, tailScaleFactor);   
    TILING_DATA_FIELD_DEF(uint32_t, mainR);  
    TILING_DATA_FIELD_DEF(uint32_t, tailR);        
    TILING_DATA_FIELD_DEF(uint32_t, tailRAlign8);  
    
    TILING_DATA_FIELD_DEF(uint32_t, reduceTempTBufSize);     
    TILING_DATA_FIELD_DEF(uint32_t, srcTBufSize);  
END_TILING_DATA_DEF;

REGISTER_TILING_DATA_CLASS(SoftmaxV2, SoftmaxV2TilingData)
} // namespace optiling

#endif // SOFTPLUSV2_CUSTOM_TILING_H
